Robust hidden data extraction method for scaling attacks

ABSTRACT

A product and process for extracting hidden data from a stego-image that has been subjected to scaling attacks are disclosed. The hidden data extraction method of the present invention retains the one-to-one mapping of the stego-image blocks to the corresponding blocks in the scaled image. When the stego-image is scaled down, the block size for extracting the hidden data is reduced proportionally. When the stego-image is scaled up, the block size for extracting the hidden data is increased proportionally. The total overall number of blocks of pixels to be examined is kept constant between the scaled image and the stego-image. The hidden data extraction method can be combined with any existing block-DCT based data hiding method to provide an overall method for dealing with scaling attacks. Both the extraction method and the combined method can be implemented in software and stored within a machine-readable medium.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. provisional patentapplication No. 60/600,578 filed Aug. 11, 2004, the disclosure of whichis incorporated herein by reference in its entirety.

GOVERNMENT INTERESTS

This invention was made with Government support under AgreementF30602-03-2-0044 awarded by the Air Force. The Government has certainrights in this invention.

FIELD OF THE INVENTION

The present invention relates to digital imaging and, more particularly,to a method for extracting hidden data embedded in a larger collectionof digital data, e.g., a digital image.

BACKGROUND OF THE INVENTION

With the growth of multimedia systems in distributed environments,issues such as copy control, illegal distribution, copyright protection,covert communications, etc., have become important. Digital data hidingschemes have been proposed in recent years as a viable way of addressingsome of these security concerns. Digital data hiding is one aspect ofthe larger field of steganography, which is concerned with the hiding ofone media type within another, such as text, voice, or another imageinto an image or video. The potential customers having the greatestinterest in steganography, particularly digital data hiding, include theentertainment industry, where digital data hiding would be used forcopyright protection and electronic fingerprinting, and defenseagencies, where digital data hiding would be used for covertcommunications and authentication of documents.

In conventional watermarking of paper documents, an ink-based image isembedded in the larger document. When authenticating the document,holding the document up to a light source reveals the faint traces ofthe watermark, which may or may not be visible under normal lightingconditions. For the entertainment or defense industries, it becomesincreasingly important not to allow digital hidden data (e.g., a digitalwatermark) to be easily visible in a stego-image (a digital image withhidden data). Thus, one important property of a good digital data hidingtechnique is to keep the distortion of a host image (the original image)to a minimum. The digital hidden data must also be relatively immune toboth intentional and unintentional attacks by those for whom the hiddendata was not intended, such as counterfeiters and computer hackers. Someexamples of attacks include digital-to-analog conversion,analog-to-digital conversion, requantization, dithering, rotation,scaling, and cropping. One of these types of attacks, scaling, isparticularly insidious because of its ability to cause minimalperceptible differences between the original and the attacked overallimage yet cause severe loss of the hidden data.

Scaling attacks generally refer to the reduction or expansion in thesize of a stego-image, and come in two categories as is known in theart:

Category 1—The scaled image is the same size as the stego-image. Thismeans a down-scaling operation is followed by an up-scaling operation orvice versa.

Category 2—The scaled image is not the same size as the stego-image(either up-scaled or down-scaled).

Probably the most common category of data hiding techniques used againstboth Category 1 and Category 2 attacks are based on the discrete cosinetransform (DCT), as is known in the art. The 2D-DCT (2-dimensional DCT)data hiding technique used most often, and virtually a standard, is thatdescribed in J. R. Hernandez et al., “DCT-Domain Watermarking Techniquesfor Still Images: Detector Performance Analysis and a New Structure,”IEEE Transactions on Image Processing, January 2000, Vol. 9, pp. 55-68(the generic data hiding and hidden data extraction methods). In thisscheme, 8×8 pixel blocks of the host image are first transformed usingthe 2D-DCT, and the mid-frequency regions of the 2D-DCT coefficientblocks are the locations where the hidden data is embedded. By using themid-frequency regions for data hiding, the hidden data causes fewerdistortions to the stego-image as compared to the low frequency regions,where most of the host image information is stored, while at the sametime the hidden data would not be removed by compression schemes such asJPEG, where the high frequency regions of the 2D-DCT coefficients arethrown away.

At the encoder end, the real values of the hidden data representing thegrey scale or color pixel amplitudes (in the range of 0-255) areconverted to binary form. If the current bit from the hidden data is a‘1’, the ‘1’ bit is replaced by a real-valued pseudo-random noise (PN)sequence. A second PN sequence represents the ‘0’ bit. The two PN's arechosen to have minimal correlation with each other. The two PN's areknown on both the encoding end and extracting end of the communicationschannel over which the stego-image is sent. The use of one PNrepresenting an ‘0’ and another representing a ‘1’ minimizes the risk ofmisjudging a received ‘1’ bit for an ‘0’ bit and vice versa when thecommunication channel is noisy.

The mid-band 2D-DCT coefficients, represented as real-valued data, aremodulated with one of the PN sequences according to the followingequations:I _(w)(u, v)=I(u, v)×(1+k _(s) ×W _(b)(u, v,)), u, v ε F _(M)I _(w)(u,v)=I(u,v), u,v εF _(M)W_(b) is either the PN sequence for ‘0’, W₀, or the PN sequence for ‘1’,W₁; F_(M) is the set of the coefficients of the 2D-DCT matrix blockcorresponding to mid-band frequencies; I(u, v) is an 8×8 2D-DCT block;k_(s) is a gain factor used to specify the strength of the hidden data,and is adjusted according to the size of the particular 2D-DCTcoefficient used (e.g., larger values of k_(s) can be used forcoefficients of higher magnitude and vice versa); and I_(W)(u,v)represents the corresponding 2D-DCT block with hidden data. After allblocks of the host image have been processed, each block of thestego-image in the frequency domain is then inverse transformed to givethe stego-image I_(W)*(x,y), where x is the distance from the upperleft-hand corner of the image along the x-axis, and y is the distancefrom the upper left-hand corner of the image along the y-axis.

In the generic hidden data extraction method, to extract the hidden dataat the other end of the communications channel, the received stego-image(which may or may not have been attacked) is broken down into 8×8blocks, and a 2D-DCT transformation is performed. Then the correlationbetween the mid-band 2D-DCT coefficients, I_(W) and both the PN's,W_(b), are calculated, where W_(b) is normalized to zero mean. If thecorrelation between the mid-band 2D-DCT coefficients and one of the PNsequences is higher than the other, then H_(i), the i^(th) reconstructedhidden data bit, is chosen according to the relation:H _(i)=1, corr(I _(w) , W ₁)>corr(I _(w) , W ₀)H_(i)=0, otherwisewhere corr( ) is the discrete correlation function. One way the discretecorrelation function is implemented, as is known in the art, is to use aMatlab™ function corr2(a, b). Given the argument C=corr2(a, b), Matlab™takes in two sequences a and b and returns a real value C which is thecorrelation coefficient of a and b. This value is less than or equal to+1, with +1 being 100% correlation.

The formula and example below illustrate how the coefficient iscalculated for a specific sequence.C=sum[sum(a′.*b′)]/sqrt[sum{sum(a′.*a′))*sum{sum(b′.*b′))]Formula:

Where, a′=a—mean(a)

-   -   b′=b—mean(b)    -   x.*y is the inner product of the vectors x and y

The usage of this formula can be illustrated with the following steps:a=[1, 0, 0, 0, 1, 1, 1, 0]b=[0, 0, 1, 0, 1, 1, 1, 1]

Step 1:mean(a)=(1+0+0+0+1+1+1+0)/8=0.5mean(b)=(0+0+1+0+1+1+1+1)/8=0.625

Step 2:a′=a-mean(a)=[0.5, −0.5, −0.5, −0.5, 0.5, 0.5, 0.5, −0.5]b′=b-mean(b)=[−0.625, −0.625, 0.375, −0.625, 0.375, 0.375, 0.375, 0.375]

Step 3:′.*b=[−0.3125, 0.3125, −0.1875, 0.3125, 0.1875, 0.1875, 0.1875, −0.1875]a′.*a=0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25]b′.*b=[0.39062, 0.39062, 0.14062, 0.39062, 0.14062, 0.14062, 0.14062,0.14062]

Step 4:sum[sum(a′.*b′)]=0.5sum[sum(a′.*a′)]=2.0sum[sum(b′.*b′)]=1.875

Step 5:sum[sum(a′.*a′)]*sum[sum(b′.*b′)]=(2.0*1.875)=3.75

Step 6:Sqrt(sum[sum(a′.*a′)]*sum[sum(b′.*b′)])=(2.0*1.875)=1.936492

Step 7:sum[sum(a′.*b′)]/sqrt[sum{sum(a′.*a′)}*sum{sum(b′.*b′)}]=0.5/1.93649=0.2582

The main problem with the generic extraction method is that it performspoorly against Category 2 attacks. Down-scaling the stego-image by amere 4% or up-scaling it by a factor of 5% causes the generic extractionmethod to lose 50% of the hidden data. This is equivalent to justassuming all extracted bits are ‘1’, and thus the extracted hidden datais unrecognizable.

The main cause of the loss of hidden data is that when the stego-imageis scaled (i.e., resized), there will be fewer or greater 8×8 bocks ofpixels to be examined in the attacked image compared to the un-scaledstego-image. If the scaled stego-image is partitioned into 8×8 blocks,then the spatial information in each block of the scaled stego-image isnot the same as that in the corresponding block of the un-scaledstego-image. If the image size is reduced, then each 8×8 pixel block inthe scaled image contains more hidden data information than thecorresponding block of the un-scaled stego-image. As such, scalingdestroys the one-to-one mapping between the blocks of the attacked imageand the corresponding blocks in the un-scaled stego-image.

SUMMARY OF THE INVENTION

The present invention overcomes the disadvantages and shortcomings ofthe prior art discussed above by providing an enhanced method ofextracting hidden data from a digital image, which includes the steps ofreceiving the digital image; determining a first number of blocks usedto hide data in an original version of the digital image; computing anoptimum block size for extracting the hidden data from the digital imagebased upon the first number of blocks; computing optimal locations inblocks of the digital image for extracting the hidden data therefrom;and extracting the hidden data from the optimal locations using theoptimal block size. The method of the present invention can be appliedto extract hidden data from both attacked and unattacked stego-images.In the case of an attacked stego-image, the method computes an optimumblock size based on both the current size and the original size of thestego-image such that the number of blocks used for extracting thehidden data from the attacked stego-image remains the same as the numberof blocks used to hide the hidden data in the original version of thestego-image.

The hidden data extraction method can be combined with any existingblock-DCT based data hiding method to provide an overall method fordealing with scaling attacks. Further, the method of the presentinvention can be implemented in software and stored within amachine-readable medium or down-loaded over the Internet via a computerdata signal embodied in a carrier wave. Moreover, the method of thepresent invention could be incorporated into a larger system for sendingand receiving images having hidden data.

Further features and advantages of the invention will appear moreclearly on a reading of the following detailed description of theexemplary embodiments of the invention, which are being provided by wayof example only with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, reference ismade to the following detailed description of the exemplary embodimentsconsidered in conjunction with the accompanying drawings, in which:

FIG. 1A is a view of data to be hidden in a digital image;

FIG. 1B is a view of a host image in which the data shown in FIG. 1A canbe hidden to produce a stego-image;

FIG. 1C is a view of the stego-image produced by hiding the data shownin FIG. 1A into the host image shown in FIG. 1B;

FIG. 1D is a diagram of a down-scaled version of the stego-image of FIG.1C in which the image is divided in accordance with the presentinvention into an appropriate number of blocks for extracting hiddendata;

FIG. 1E is a block diagram showing the coefficients of the discretecosine transformation along with the middle frequency coefficients usedby the present invention to hide data in blocks of the stego-image ofFIG. 1D;

FIG. 1F shows the extracted hidden data derived from FIG. 1D afterprocessing by the method of the present invention;

FIG. 2 is a flow chart showing the overall method of the presentinvention;

FIG. 3 is a flow chart showing the method of FIG. 2 in greater detail,wherein an optimal block size is computed based on the image dimensions;

FIG. 4 is a flow chart showing the method of FIG. 2 in greater detail,wherein appropriate 2D-DCT mid-band locations are chosen and δ rows andβ columns are eliminated;

FIG. 5 is a flow chart showing the method of FIG. 2 in greater detail,wherein hidden data bits are extracted;

FIG. 6 is a block diagram of an apparatus capable of employing themethod of FIG. 2;

FIG. 7 is flow chart of another embodiment of the present inventionwherein the extraction method is incorporated into a system for sendingand receiving data across a communications channel;

FIG. 8 is a graph of bit error rates (BER) versus scaling factors,comparing the performance of the hidden data extraction method of thepresent invention to the generic method for a Category-1 Down-Scalingattack;

FIG. 9 is a graph of bit error rates (BER) versus scaling factors,comparing the performance of the hidden data extraction method of thepresent invention to the generic method for a Category-1 Up-Scalingattack;

FIG. 10 is a graph of bit error rates (BER) versus scaling factors,comparing the performance of the hidden data extraction method of thepresent invention to the generic method for a Category-2 Down-Scalingattack; and

FIG. 11 shows graphs of bit error rates (BER) versus scaling factors,comparing the performance of the hidden data extraction method of thepresent invention to the generic method for a Category-2 Up-Scalingattack.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to FIGS. 1A-1F, there is shown visually how the enhancedhidden data extraction method (i.e., the hidden data extraction methodof the first embodiment) of the present invention acts upon ascaled-down stego-image. In FIG. 1A, a digital representation ofexemplary data to be hidden 2 is depicted, with the letters in the name“TOM” in uppercase letters. The letters of “TOM” are composed of digitalgrey-scale real numbers or pixels of dark areas 4 surrounded by lightareas 6. Generally these pixels range in value from 0-255 encoded inbinary representation in a computer. If the image 2 were in color, thenthe letters 4 and the background 6 would be represented by three sets ofnumbers for each pixel. The discussion of the foregoing enhancedextraction method of the present invention will consider the simplercase of a grey scale image, although the enhanced extraction methodworks equally well on a color image in which the same method is appliedto three sets of blocks of numbers instead of one.

Now referring to FIGS. 1B and 1C, FIG. 1B is the original host image 9,while FIG. 1C is the stego-image 10 with data hidden according to thegeneric method (i.e., the prior art method). The stego-image 10 shows aperson 12 surrounded by a background 14. The hidden data itself does notremain intact in the image 10, but is spread out or “hidden” over theentire stego-image 10, resulting in a small amount of distortion orstray pixels of dark areas or light areas 16. The stego-image 10 haspixel dimensions of M₀×N₀, which represents the original size of thestego-image 10.

FIG. 1D shows an attacked version 10′ of the stego-image 10 shown inFIG. 1C, wherein the image 10′ has been the subject of a scaling attack.When run through the enhanced extraction method of the presentinvention, the attacked stego-image 10′, in this case reduced in size toM_(W) pixels by N_(W) pixels, is divided into n_(x)×n_(y) blocks 18where n_(x) is the number of columns and n_(y) is the number of rows inthe attacked image. Each of the blocks 18 represents a matrix of pixelsof dimensions B_(x)×B_(y). The size B_(x)×B_(y) of the blocks 18 willvary proportionally to the ratio of the size of the attacked stego-image10′ to the original stego-image 10 such that the total number of blocks18 used to extract data from the attacked version 10′ of the stego-image10 is the same as the number of blocks used to hide data into thestego-image 10.

With reference to FIG. 1E, during the processing of the attackedstego-image 10′, each of the blocks 18 is transformed to the frequencydomain using the discrete cosine transform (DCT), producing lowfrequency coefficients 20, mid-frequency coefficients 22, and highfrequency coefficients 24. Each low frequency coefficient 20 containsmost of host image's information, but does not contain any hidden datainformation. The hidden data information is stored in the mid-frequencycoefficients 22, which distorts the stego-image only minimally. Nohidden data information is stored in the upper frequency coefficients24, since this region of the 2D-DCT-transformed image is most likely tobe affected by data compression algorithms such as the JPEG standard, solittle hidden data information is lost.

With reference to FIG. 1F, an extracted hidden data image 25 isreconstructed by the enhanced method of the present invention andcontains data corresponding to the data 2 shown in FIG. 1A and embeddedin the stego-image of FIG. 1C. There will be some degradation to thehidden data. For example, the letter ‘O’ shows a missing pixel 26, theletter ‘T’ shows extra dark pixels 27, and some stray dark pixels 28appear in the background 30. However, this degradation is nominal, asthe overall integrity of the hidden data image 25 is preserved.

With reference to FIG. 2, a flow chart 31 of the basic steps of theenhanced method of the present invention is depicted. At step 32, thereceived stego-image, represented as real-valued digital data bits, isread into a buffer. By the term “received stego-image,” it is meant astego-image which has been transmitted through a communication channeland which may or may not have been attacked. By the term “originalstego-image,” it is meant a stego-image that includes hidden data andwhich has not yet been transmitted and/or subject to an attack. At step34, the size of the received stego-image is determined. At step 36, theoptimal block size is computed based on the image dimensions determinedin step 34. At step 38, after 2D-DCT transforming an individual block ofoptimal block size, appropriate 2D-DCT mid-band locations 22 (see FIG.1E) are selected for further processing. At step 40, the hidden databits are extracted from the 2D-DCT mid-band locations 22. The processingshown in FIG. 2 can be repeated as necessary to process all blocks 18 ofthe received stego-image.

With reference to FIG. 3, the step 36 of FIG. 2 of computing the optimalblock size based on the image dimensions is expanded into sub-steps. Atstep 44, the number of blocks of the original stego-image image,n_(x)×n_(y), is determined, where n_(x) is the number columns of blocksand n_(y) is the number of rows of blocks. The number of columns ofblocks, n_(x,) and the number of rows of blocks, n_(y,) can bedetermined from any one of the following information stored in theheader of the received stego-image: (i) the values of n_(x) and n_(y),(ii) the ratio of n_(x) to n_(y) (or vice versa), or (iii) thedimensions, M₀×N₀ pixels, of the original stego-image. Further, if thedimensions of the block size, a×b, used to encode the host image isknown (e.g., the 8×8 pixels used in the J. R. Hernandez et al. 2D-DCTdata hiding technique), then the number of blocks of the originalstego-image image can be calculated as$\frac{M_{0}}{a} \times {\frac{N_{0}}{b}.}$

The received stego-image has dimensions M_(w)×N_(w). At step 46, atemporary variable, b_(x)* is calculated, equal to M_(w) pixels dividedby n_(x) blocks. Likewise, at step 48, a temporary variable, b_(y)* iscalculated, equal to N_(w) pixels divided by n_(y) blocks. At step 50,the question is asked whether the value of b_(x)* is an integer. If itis not, then step 52 occurs, wherein the quantity B_(x)*, representingthe x dimension size of a block to be used in the enhanced extractionmethod of the present invention, is calculated from the floor functionoperating on b_(x)* (the floor function being the truncated value of areal number, or the decimal part without the fraction beyond thedecimal). If b_(x)* is an integer, then at step 54, B_(x)* is set tob_(x)*. Likewise, at step 55, the question is asked whether the value ofb_(y)* is an integer. If it is not, then step 56 occurs, wherein thequantity B_(y)*, representing the y dimension size of a block to be usedin the enhanced extraction method of the present invention, iscalculated from the floor function operating on b_(y)*. If b_(y)* is aninteger, then at step 57, B_(y)* is set to b_(y)*. At step 58, theresidual in the x direction, β, is computed, where βis defined as:β=M _(w)−(└B _(x) *┘*n _(x))

Finally, at step 59, the residual in the y direction δ is computed,where δ is defined as:δ=M _(W)−(└B _(y) *┘*n _(y))As an example, if the original stego-image had overall dimensions M₀×N₀of 1024×1024 pixels and the received stego-image was down-scaled todimensions M_(w)×N_(w) of 512×512 pixels, then the original number ofblocks, n_(x)×n_(y), assuming an 8×8 block size, isM₀/8×N₀/8=1024/8×1024/8=128×128=16384 blocks. The block size to be usedto extract the hidden data from the received stego-image using theenhanced method is no longer 8×8, but${B_{x}^{*} = {\left\lfloor b_{x}^{*} \right\rfloor = {\left\lfloor \frac{M_{W}}{n_{x}} \right\rfloor = {\left\lfloor \frac{512}{128} \right\rfloor = 4}}}},{B_{y}^{*} = {\left\lfloor b_{y}^{*} \right\rfloor = {\left\lfloor \frac{N_{W}}{n_{y}} \right\rfloor = {\left\lfloor \frac{512}{128} \right\rfloor = 4}}}}$for a 4×4 block size. The residuals β and δ would beβ=M _(W)−(└B _(x) *┘*n _(x))=512−(└4┘*128)=0, δ=512−(└4┘*128)=0,

As another example, if the original stego-image had overall dimensionsM₀×N₀ of 1024×1024 pixels and the received stego-image was up-scaled todimensions M_(w)×N_(w) of 2048×2048 pixels, then the original number ofblocks is M₀/n_(x)×N₀/n_(y)=1024/8×1024/8=128×128=16384 blocks so theblock size to be used to extract the hidden data from the receivedstego-image using the enhanced method is no longer 8×8, but${B_{x}^{*} = {\left\lfloor b_{x}^{*} \right\rfloor = {\left\lfloor \frac{M_{W}}{n_{x}} \right\rfloor = {\left\lfloor \frac{2048}{128} \right\rfloor = 16}}}},{B_{y}^{*} = {\left\lfloor b_{y}^{*} \right\rfloor = {\left\lfloor \frac{N_{W}}{n_{y}} \right\rfloor = {\left\lfloor \frac{2048}{128} \right\rfloor = 16}}}}$for a 16×16 block size. The residuals β and δ would beβ=M _(W)−(└B _(x) *┘*n _(x))=2048−(└16┘*128)=0, δ=2048−(└16┘*128)=0,

Now referring to FIG. 4, the step 38 of choosing the appropriate 2D-DCTmid-band locations is expanded into sub-steps. At step 60, the receivedstego-image image is down-scaled to eliminate β rows and δ columns. Atstep 62, the image is bilinear-interpolated. At step 64, the resultingimage from steps 62 and 64 is divided into n_(x)×n_(y) blocks. At step66, the 2D-DCT is taken for each block. At step 68, the mid-bandfrequency components from each block are extracted.

Now referring to FIG. 5, the step 40 of extracting the hidden data bitsis expanded into sub-steps. At step 70, the mid-band coefficients of a2D-DCT block matrix are correlated with the known PN sequencerepresenting a ‘1’ bit. At step 72, the same mid-band coefficients ofthe same 2D-DCT block matrix are correlated with the known PN sequencerepresenting an ‘0’ bit. At step 74, the correlation of step 70 iscompared with that of step 72. If the value of correlation with the PNsequence representing a ‘1’ bit is greater than that of the PN sequencerepresenting a ‘0’ bit, then at step 76, the hidden data bit is set to‘1’, otherwise, the hidden data bit is set to ‘0’ at step 78. At step80, if all the 2D-DCT blocks have been examined, then the hidden datahas been completely extracted, otherwise, processing continues with step81 at the next block.

With reference to FIG. 6, an apparatus implementing the enhanced hiddendata extraction method of the present invention is depicted. A processor82 reads in the received stego-image from communications channel 84 viaa network interface card 86 (NIC) and stores the image in memory 88.Communications channel 84 is often a local area network or the Internet,so that NIC 86 can be an Ethernet Card. In wireless communications, thecommunication channel 84 is airspace and the NIC 86 is a WiFi orBluetooth transceiver. In still other applications, communicationschannel 84 is a telecommunication network and NIC 86 is a dial-up modem.Processor 82 can reside within an embedded system, a personal computer,work station, a minicomputer, or a main frame. For example, a suitableprocessor could include a Sun SPARCstation™ 60 having 512 megabytes ofmemory, running the Solaris™ operating system. Memory 88 can be acombination of random access memory and/or a machine-readable medium,such as a hard disk. Memory 88 is used for storing and the data receivedfrom the communication channel 84 and for storing the enhanced hiddendata extraction program of the present invention. After processor 82operates on the image and extracts the hidden data, the hidden data canbe shown on a display 89 such as a monitor, stored back in memory 88, orsent back over communication channel 84 via NIC 86. The method of thepresent invention could be carried out using software written in anysuitable high or low level language, and stored in executable objectcode in the memory 88.

FIG. 7 is a flow chart showing another embodiment of the presentinvention, indicated generally at 100. In this embodiment, theextraction method of the present invention is incorporated into a systemfor sending and receiving data across any suitable communicationschannel. In step 102, a generic, block-based 2D-DCT data hidingalgorithm is performed on a host image in a memory (e.g., an imagestored in memory 88 of FIG. 6) to produce a stego-image. Thisstego-image is sent out through a communications channel via a processorand a NIC at step 104 (using, for example, the components shown in FIG.6). The stego-image is then received over the communications channel andstored in memory. The processor then performs the enhanced hidden dataextraction method of the present invention. Finally, at step 108, theextracted hidden data is presented on a display.

One advantage of the enhanced hidden data extraction method over thegeneric method is performance. To gauge the performance of the enhancedhidden data extraction method of the present invention over the genericmethod, reference is made to FIGS. 8-11. FIGS. 8-11 summarize theresults obtained after Category-1 and Category-2 scaling attacks onthree stego-images having sizes of 512×512 pixels. Random bit sequencesranging in size from 8000 to 14400 bits were used as hidden data.

Referring now to FIG. 8, a graph of bit error rates (BER) versus scalingfactors is depicted for the case of a Category-1 Down-Scaling attack.The enhanced method (i.e., the hidden data extraction method of bothdisclosed embodiments) of the present invention and the generic (i.e.,the prior art) method performed equally well, so that for a down-scalingfactor of 85%, both methods retrieve about 90% of the embedded hiddendata correctly (what is meant by a recovery rate of 90% is that the BitError Rate (BER) was about 0.1, or 100 errors per 1000 bits of hiddendata).

Referring now to FIG. 9, a graph of bit error rates (BER) versus scalingfactors is depicted for the case of a Category-1 Up-Scaling attack. Theenhanced method of the present invention and the generic methodperformed equally well, so that for a down-scaling factor of 85%, bothmethods retrieve about 99.4% of the embedded hidden data correctly for aBER of about 0.005, or 5 errors per 1000 bits of hidden data.

Referring now to FIG. 10, a graph of bit error rates (BER) versusscaling factors is depicted for the case of a Category-2 Down-Scalingattack. The enhanced method of the present invention far out-performsthe generic method for all cases of down-scaling between 6% and 100%.Down-scaling the stego-image with the generic method by a mere 4% causesthe generic method to loose 50% of the hidden data. At this percentageof down-scaling, the enhanced method of the present invention has a near0% error, and even a 66% down-scaling causes a 0.11 BER for a recoveryrate of 89%.

Referring now to FIG. 11, graphs of bit error rates (BER) versus scalingfactors are depicted for the case of a Category-2 Up-Scaling attack. Theenhanced method of the first embodiment of the present invention, shownin the graph to the right, far out-performs the generic method, shown inthe graph to the left, for all cases of up-scaling between 100% and400%. Up-scaling the stego-image with the generic method in nearly allup-scaling attacks resulted in a 50% recovery rate, while the enhancedmethod of the present invention had a BER no greater than 0.007 for arecovery rate of 99.3%.

The performance of the enhanced method of the present invention comparedto the generic method using a combination of attacks is summarized inTable 1, below. Here, the stego-image was subjected to several otherpopular attacks known in the art before down-scaling the stego-image bya factor of 50%. In all cases, the enhanced method of the presentinvention fared better than the generic method. TABLE 1 PERFORMANCERESULTS FOR COMBINATION ATTACKS BER for the Method of the BER for thePresent Generic Test Invention Method JPEG (Q.90) 0.057 0.667 JPEG(Q-50) 0.059 0.685 JPEG (Q-20) 0.066 0.694 Sharpening 0.086 0.658Despeckle 0.095 0.631 Smart Blur (Rad. 5) 0.104 0.730 Median Filtering0.154 0.676 Uniform Noise (10%) 0.229 0.775 Uniform Noise (15%) 0.2850.793 Gaussian Noise (10%) 0.301 0.820 Gaussian Noise (15%) 0.325 0.856Motion Blur (5°) 0.362 0.802

An advantage of the enhanced method over other hidden data extractionmethods is its minimal computational complexity. Only two additionaldivisions are needed compared to the generic method.

It will be understood that the embodiments described herein are merelyexemplary and that a person skilled in the art may make many variationsand modifications without departing from the spirit and scope of theinvention. All such variations and modifications are intended to beincluded within the scope of the present invention as defined in theappended claims.

1. A method of extracting hidden data from a digital image, comprisingthe steps of: receiving said digital image; determining a first numberof blocks used to hide data in an original version of said digitalimage; computing an optimum block size for extracting hidden data fromthe digital image based upon said first number of blocks; computingoptimum locations in blocks of said digital image for extracting datatherefrom; and extracting hidden data from said optimal locations usingsaid optimum block size.
 2. The method of claim 1, wherein said digitalimage is a received stego-image.
 3. The method of claim 2, wherein saidstep of computing an optimum block size is based upon said first numberof blocks.
 4. The method of claim 3, wherein said step of extractinghidden data further includes the step of extracting said hidden datafrom a second number of blocks in said received stego-image equal tosaid first number of blocks.
 5. The method of claim 4, wherein the stepof determining said first number of blocks used to hide data furtherincludes the step of determining the number of blocks divided into n_(x)rows by n_(y) columns of blocks of an original stego-image.
 6. Themethod of claim 4, wherein the step of determining said first number ofblocks used to hide data further includes the step of calculating n_(x)rows by n_(y) columns of blocks by dividing a known original block sizeof a×b pixels into an original stego-image size of dimensions M₀×N₀pixels.
 7. The method of claim 6, further comprising the step of readingthe original stego-image size from a header.
 8. The method of claim 7,wherein said step of computing an optimum block size further includesthe steps of: determining the current pixel dimensions M_(w)×N_(w) ofsaid received stego-image; calculating a first temporary variableb_(x)*, wherein ${b_{x}^{*} = \frac{M_{W}}{n_{x}}};$ calculating asecond temporary variable b_(y)*, wherein${b_{y}^{*} = \frac{N_{W}}{n_{y}}};$ calculating a first floor valueB_(x)*, wherein B_(x)*=b_(x)* when b_(x)* is an integer andB_(x)*=└b_(x)*┘ when b_(x)* contains a fractional component; calculatinga second floor value B_(y)*, wherein B_(y)*=b_(y)* when b_(y)* is aninteger and B_(y)*=└b_(y)*┘ when b_(y)* contains a fractional component;and setting dimensions of said optimum block size to B_(x)*×B_(y)*. 9.The method of claim 8, wherein said step of computing an optimum blocksize further includes the step of calculating a residual row value β anda residual column value δ, wherein β=M_(w)−(└B_(x)*┘*n_(x)) andδ=N_(w)−(└B_(y)*┘*n_(y)).
 10. The method of claim 9, wherein said stepof determining optimal locations for extracting the hidden data fromsaid received stego-image further includes the steps of: down scalingsaid received stego-image by eliminating β rows of blocks and δ columnsof blocks; bilinear interpolating said received stego-image to producean intermediate image; dividing said intermediate image into n_(x)×n_(y)blocks using said optimum block size; calculating a 2-DimensionalDiscrete Cosine Transform (2D-DCT) for each of said n_(x)×n_(y) blocksto produce a set of transformed blocks; and determining mid-bandfrequency coefficients for each block of said set of transformed blocks.11. The method of claim 10, wherein said step of extracting the hiddendata from said received stego-image using said optimum block sizefurther includes the steps of: (a) correlating said mid-band frequencycoefficients of one block of said set of transformed blocks with a firstpseudo random noise (PN) sequence representing a “1” bit to produce afirst correlation value; (b) correlating said mid-band frequencycoefficients of said block with a second pseudo random noise (PN)sequence representing a “0” bit to produce a second correlation value;(c) setting a hidden data bit to “1” when said first correlation valueis greater than or equal to said second correlation value; (d) setting ahidden data bit to “1” when said first correlation value is less than orequal to said second correlation value; and (e) repeating steps (a)-(d)until all blocks in said set of transformed blocks have been processed.12. The method of claim 11, wherein steps (a) and (b) are performedusing a discrete correlation function.
 13. The method of claim 1,further comprising the steps of hiding the data in a host image toproduce an original stego-image by applying a block based DCT datahiding algorithm to said host image and transmitting said originalstego-image through a communications channel before said step ofreceiving said digital image.
 14. A computer-readable medium carryingone or more sequences of instructions for extracting hidden data from adigital image, wherein execution of the one of more sequences ofinstructions by a one or more processors causes one or more processorsto perform the steps of: receiving said digital image; determining afirst number of blocks used to hide data in an original version of saiddigital image; computing an optimum block size for extracting hiddendata from said digital image based upon said first number of blocks;computing optimum locations in blocks of said digital image forextracting data therefrom; and extracting hidden data from said optimallocations using said optimum block size.
 15. The computer-readablemedium of claim 14, wherein said digital image is a stego-image.
 16. Thecomputer-readable medium of claim 15, wherein said step of computing anoptimum block size is based upon said first number of blocks.
 17. Thecomputer-readable medium of claim 16, wherein said step of extractinghidden data further includes the step of extracting said hidden datafrom a second number of blocks in said received stego-image equal tosaid first number of blocks.
 18. The computer-readable medium of claim17, wherein the step of determining said first number of blocks used tohide data further includes the step of determining the number of blocksdivided into n_(x) rows by n_(y) columns of blocks of an originalstego-image.
 19. The computer-readable medium of claim 17, wherein thestep of determining said first number of blocks used to hide datafurther includes the step of calculating n_(x) rows by n_(y) columns ofblocks by dividing a known original block size of a×b pixels into anoriginal stego-image size of dimensions M₀×N₀ pixels.
 20. Thecomputer-readable medium of claim 19, further comprising the step ofreading the original stego-image size from a header.
 21. Thecomputer-readable medium of claim 20, wherein said step of computing anoptimum block size further includes the steps of: determining thecurrent pixel dimensions M_(w)×N_(w) of said received stego-image;calculating a first temporary variable b_(x)*, wherein${b_{x}^{*} = \frac{M_{W}}{n_{x}}};$ calculating a second temporaryvariable b_(y)*, wherein ${b_{y}^{*} = \frac{N_{W}}{n_{y}}};$calculating a first floor value B_(x)*, wherein B_(x)*=b_(x)* whenb_(x)* is an integer and B_(x)*=└b_(x)*┘ when b_(x)* contains afractional component; calculating a second floor value B_(y)*, whereinB_(y)*=b_(y)* when b_(y)* is an integer and B_(y)*=└b_(y)*┘ when b_(y)*contains a fractional component; and setting dimensions of said optimumblock size to B_(x)*×B_(y)*.
 22. The computer-readable medium of claim21, wherein said step of computing an optimum block size furtherincludes the step of calculating a residual row value β and a residualcolumn value δ, wherein β=M_(w)−(B_(x)**n_(x)) andδ=N_(w)−(B_(y)**n_(y)).
 23. The computer-readable medium of claim 22,wherein said step of determining optimal locations for extracting thehidden data from said received stego-image further includes the stepsof: down scaling said received stego-image by eliminating β rows ofblocks and δ columns of blocks; bilinear interpolating said receivedstego-image to produce an intermediate image; dividing said intermediateimage into n_(x)×n_(y) blocks using said optimum block size; calculatinga 2-Dimensional Discrete Cosine Transform (2D-DCT) for each of saidn_(x)×n_(y) blocks to produce a set of transformed blocks; anddetermining mid-band frequency coefficients for each block of said setof transformed blocks.
 24. The computer-readable medium of claim 23,wherein said step of extracting the hidden data from said receivedstego-image using said optimum block size further includes the steps of:(a) correlating said mid-band frequency coefficients of one block ofsaid set of transformed blocks with a first pseudo random noise (PN)sequence representing a “1” bit to produce a first correlation value;(b) correlating said mid-band frequency coefficients of said block witha second pseudo random noise (PN) sequence representing a “0” bit toproduce a second correlation value; (c) setting a hidden data bit to “1”when said first correlation value is greater than or equal to saidsecond correlation value; (d) setting a hidden data bit to “1” when saidfirst correlation value is less than or equal to said second correlationvalue; and (e) repeating steps (a)-(d) until all blocks in said set oftransformed blocks have been processed.
 25. The computer-readable mediumof claim 24, wherein steps (a) and (b) are performed using a discretecorrelation function.
 26. The computer-readable medium of claim 14,further comprising the steps of hiding the data in a host image toproduce an original stego-image by applying a block based DCT datahiding algorithm to said host image and transmitting said originalstego-image through a communications channel before said step ofreceiving said digital image.
 27. A computer data signal embodied in acarrier wave readable by a computer and encoding a computer program ofinstructions to execute a computer process for extracting hidden datafrom a digital image, the computer process comprising the steps of:receiving said digital image; determining a first number of blocks usedto hide data in an original version of said digital image; computing anoptimum block size for extracting hidden data from said digital imagebased upon said first number of blocks; computing optimum locations inblocks of said digital image for extracting data therefrom; andextracting hidden data from said optimal locations using said optimumblock size.
 28. The computer data signal of claim 27, wherein saiddigital image is a stego-image.
 29. The computer data signal of claim28, wherein said step of computing an optimum block size is based uponsaid first number of blocks.
 30. The computer data signal of claim 29,wherein said step of extracting hidden data further includes the step ofextracting said hidden data from a second number of blocks in saidreceived stego-image equal to said first number of blocks.
 31. Thecomputer data signal of claim 30, wherein the step of determining saidfirst number of blocks used to hide data further includes the step ofdetermining the number of blocks divided into n_(x) rows by n_(y)columns of blocks of an original stego-image.
 32. The computer datasignal of claim 31, wherein the step of determining said first number ofblocks used to hide data further includes the step of calculating n_(x)rows by n_(y) columns of blocks by dividing a known original block sizeof a×b pixels into an original stego-image size of dimensions M₀×N₀pixels.
 33. The computer data signal of claim 32, wherein said computerprocess further comprises the step of reading the original stego-imagesize from a header.
 34. The computer data signal of claim 33, whereinsaid step of computing an optimum block size further includes the stepsof: determining the current pixel dimensions M_(w)×N_(w) of saidreceived stego-image; calculating a first temporary variable b_(x)*,wherein ${b_{x}^{*} = \frac{M_{W}}{n_{x}}};$ calculating a secondtemporary variable b_(y)*, wherein ${b_{y}^{*} = \frac{N_{W}}{n_{y}}};$calculating a first floor value B_(x)*, wherein B_(x)*=b_(x)* whenb_(x)* is an integer and B_(x)*=└b_(x)*┘ when b_(x)* contains afractional component; calculating a second floor value B_(y)*, whereinB_(y)*=b_(y)* when b_(y)* is an integer and B_(y)*=└b_(y)*┘ when b_(y)*contains a fractional component; and setting dimensions of said optimumblock size to B_(x)*×B_(y)*.
 35. The computer data signal of claim 34,wherein said step of computing an optimum block size further includesthe step of calculating a residual row value β and a residual columnvalue δ, wherein β=M_(w)−(B_(x)**n_(x)) and δ=N_(w)−(B_(y)**n_(y)). 36.The computer data signal of claim 35, wherein said step of determiningoptimal locations for extracting the hidden data from said receivedstego-image further includes the steps of: down scaling said receivedstego-image by eliminating β rows of blocks and δ columns of blocks;bilinear interpolating said received stego-image to produce anintermediate image; dividing said intermediate image into n_(x)×n_(y)blocks using said optimum block size; calculating a 2-DimensionalDiscrete Cosine Transform (2D-DCT) for each of said n_(x)×n_(y) blocksto produce a set of transformed blocks; and determining mid-bandfrequency coefficients for each block of said set of transformed blocks.37. The computer data signal of claim 36, wherein said step ofextracting the hidden data from said received stego-image using saidoptimum block size further includes the steps of: (a) correlating saidmid-band frequency coefficients of one block of said set of transformedblocks with a first pseudo random noise (PN) sequence representing a “1”bit to produce a first correlation value; (b) correlating said mid-bandfrequency coefficients of said block with a second pseudo random noise(PN) sequence representing a “0” bit to produce a second correlationvalue; (c) setting a hidden data bit to “1” when said first correlationvalue is greater than or equal to said second correlation value; (d)setting a hidden data bit to “1” when said first correlation value isless than or equal to said second correlation value; and (e) repeatingsteps (a)-(d) until all blocks in said set of transformed blocks havebeen processed.
 38. The computer data signal of claim 37, wherein steps(a) and (b) are performed using a discrete correlation function.
 39. Thecomputer data signal of claim 27, wherein said computer process furthercomprises the steps of hiding the data in a host image to produce anoriginal stego-image by applying a block based DCT data hiding algorithmto said host image and transmitting said original stego-image through acommunications channel before said step of receiving said digital image.